The present relates broadly to computer systems having a client server configuration. Specifically, the present invention relates to resource adapters used in client server applications. More specifically still, the present invention relates to a modular and portable deployment of resource adapters in client server applications.
An enterprise information system (EIS) provides an information infrastructure to an enterprise in a client-server computer system configuration. An EIS offers a set of services to its clients. These services are exposed to clients as local and/or remote interfaces. A resource manager is a software module that manages a set of shared EIS resources. For example, a transactional resource manager can participate in transactions that are externally controlled and coordinated by a transaction manager.
A resource adapter is a system level software driver provided along with an EIS connector and is specific to an underlying EIS. A resource adapter is used by an application server or an application client to connect to the EIS. The resource adapter plugs into an application server and collaborates with the application server to provide the underlying mechanisms-transactions, security, and connection pooling.
There is currently no existing standard mechanism for deploying and configuring resource adapters in a managed application server environment. Each vendor has its own specific mechanism, making it difficult to achieve off-the-shelf pluggability of resource adapters in an application server. For application developers who design and implement application servers, the result is an enormous amount of duplicated or nearly duplicated effort expended to customize resource adapters into a specific client server configuration.
The present invention provides a standardized system by which resource adapters may be utilized in client server computer configurations utilizing enterprise information systems. A connector provider develops a set of Java interfaces and classes as part of its implementation of a resource adapter. These Java classes implement connector architecture specified contracts and implement EIS specific functionality provided by the resource adapter. The development of a resource adapter can also require use of native libraries that are specific to the underlying EIS. The Java interfaces and classes and native libraries, help files, documentation and other resources (as necessary) are then packaged together with a deployment descriptor to create a resource adapter module. The resource adapter module defines the contract between a connector provider and deployer for the deployment of a resource adapter in the client server environment.
In order to facilitate the configuration of the resource adapter in an operational environment, the present invention specifies the following interfaces and classes. A class that implements a managed connection factory class supports a set of properties that provide information required by the managed connection factory for the creation of physical connections to the underlying EIS. This implementation class provides getter and setter methods for each of its supported properties. The supported properties are consistent with the specification of configurable properties specified in the deployment descriptor.
A preferred embodiment of the present invention incorporates an environment using the Java Naming and Directory Interface (JNDI). An application component or client is required to look up a connection factory instance in the component""s environment using the JNDI interface. The application component then uses the connection factory instance to get a connection the underlying EIS. Registration of a connection factory instance in the JNDI namespace can be done by using either JNDI reference or serializable mechanisms.